<!--#include file="lib/utf-8.asp"-->
<!--#include file="lib/connopen.asp"-->
<!--#include file="lib/asp-json-lib.asp"-->
<!--#include file="lib/asp-common-lib.asp"-->
<%
Response.ContentType = "application/json"
dim i,sql,chks,accepter,aChk,aVal
chks=request("chks")
accepter=request("accepter")
aChk=split(chks,",")
' for i=0 to ubound(aChk)
	' aChk(i)="'"&aChk(i)&"'"
' next
' sVal=join(aChk,",")
'先清除由于conn.open而产生的警告以 Errors 集合中的 Error 对象的方式出现，但并不中止程序的执行
conn.errors.clear
'事务开始
conn.BeginTrans


' sql="select * from crm_empe where id="&accepter
' set rs=conn.execute(sql)
' dept=rs("dept")
' rs.close
' set rs=nothing

crm_update=formattime(now(),"{Y}-{m}-{d} {h}:{n}:{s}")
post_update=crm_update

for i=0 to ubound(aChk)
	aVal=split(aChk(i),"|")
	' if CheckPostFlag(session("aaPostflag"),4,4) then
		' 只能对没有没有忽略过的单子操作，并且下面
		' 只能对派单人为非当前目标的单子进行操作，除了完成并失败情况下，管理层可以重复派
		' 只能对初始、派单状态下的单子进行派单
		' if (not aVal(1)) and ((accepter<>aVal(3) and aVal(2)<>4) or (accepter=aVal(3) and aVal(2)=4)) and (aVal(2)=1 or aVal(2)=2 or aVal(2)=4) then
		' if (not aVal(1)) and ((accepter<>aVal(3) and (aVal(2)<>4 or (aVal(2)=4 and session("iDept")=0))) or (accepter=aVal(3) and aVal(2)=4)) and (aVal(2)=1 or aVal(2)=2 or aVal(2)=4) then
		
		if not aVal(1) then
			if (session("iDept")=0 and aVal(2)=4 and aVal(4)=0) or (accepter<>aVal(3) and (aVal(2)=1 or aVal(2)=2)) then
				sql="update crm set empe="&accepter&",post=2,dispatcher="&session("iId")&",dispatch_update='"&crm_update&"',crm_update='"&crm_update&"',post_update='"&post_update&"' where id="&aVal(0)
				call	ExecuteCommand(sql,false)
				sql_dispatch="insert into crm_dispatch(company,dispatcher,accepter) values("&aVal(0)&","&session("iId")&","&accepter&")"
				call	ExecuteCommand(sql_dispatch,false)
			end if
		end if
next

' response.write sql
' response.end

' for i=0 to ubound(aChk)
	' aVal=split(aChk(i),"|")
	' if CheckPostFlag(session("aaPostflag"),4,4) then
		' if act="已收" and not aVal(1) then sql="update cd set cd_received=true,cd_post=4,cd_actreceive="&aVal(2)&" where id="&aVal(0)
		' if act="已付" and not aVal(3) then sql="update cd set cd_paid=true,cd_post=4,cd_actpay="&aVal(4)&" where id="&aVal(0)
		' 只能对没有进行过已收、已付操作的单子操作，防止重复覆盖
		' if not(aVal(1) and aVal(3)) then
			' cmd.CommandText = sql
			' cmd.Execute
		' end if
	' end if
' next
'判断没有任何sql执行过，就清楚错误信息，因为在conn.open执行后，conn.Errors.Count就等于1，下面一段就是测试代码
'if sql="" then conn.errors.clear
' if conn.errors.count>0 then
  ' response.write "数据库连接对象有错了，看看是哪一步出的错："&"<br>"
  ' for i =0 to conn.errors.count-1
    ' response.write conn.errors.item(i)&"<br>"
  ' next
' else
  ' response.write "很完美!"
' end if
dim json
set json=jsObject()
if conn.Errors.Count=0 then
	'如果没有conn错误，则执行事务提交
	conn.CommitTrans
	if sql="" then 
		json("bStatus")=false
		json("sInfo")="没有进行任何操作"
	else
		json("bStatus")=true
	end if
else
	'否则回滚
	conn.RollbackTrans
	json("bStatus")=false
	json("sInfo")="数据库错误"
end if
json.Flush
%>
<!--#include file="lib/connclose.asp"-->

